The invention relates, generally, to data processing systems and telecommunication systems, and, more specifically, to a technique for enabling communication connections between circuit-switched communication networks and packet-switched data processing networks.
Two fundamentally different switching technologies exist that enable digital communications. The first type, circuit-switched networks, operate by establishing a dedicated connection or circuit between two points, similar to public switched telephone networks(PSTN). A telephone call causes a circuit to be established from the originating phone through the local switching office across trunk lines, to a remote switching office and finally to the intended destination telephone. While such circuit is in place, the call is guaranteed a data path for digitized or analog voice signals regardless of other network activity. The second type packet-switched networks, typically connect computers and establish an asynchronous xe2x80x9cvirtualxe2x80x9d channel between two points. In a packet-switched network, data, such as a voice signal, is divided into small pieces called packets which are then multiplexed onto high capacity connections for transmission. Network hardware delivers packets to specific destinations where the packets are reassembled into the original data set. With packet-switched networks, multiple communications among different computers can proceed concurrently with the network connections shared by different pairs of computers concurrently communicating. Packet-switched networks are, however, sensitive to network capacity. If the network becomes overloaded, there is no guarantee that data will be timely delivered. Despite this drawback, packet-switched networks have become quite popular, particularly as part of the Internet and Intranets, due to their cost effectiveness and performance.
In a packet-switched data network one or more common network protocols hide the technological differences between individual portions of the network, making interconnection between portions of the network independent of the underlying hardware and/or software. A popular network protocol, the Transmission Control Protocol/Internet Protocol (TCP/IP) is utilized by the Internet and Intranets greater than  Intranets are private networks such as Local Area Networks (LANs) and Wide Area Networks (WAN). The TCP/IP protocol utilizes universal addressing as well as a software protocol to map the universal addresses into low level machine addresses. For purposes of this discussion, networks which adhere to the TCP/IP protocol will be referred to hereinafter xe2x80x9cIP-basedxe2x80x9d or as utilizing xe2x80x9cIP addressesxe2x80x9d or xe2x80x9cInternet Protocol addressxe2x80x9d.
It is desirable for communications originating from an IP-based network to terminate at equipment in a PSTN network, and vice versa , or for calls which originate and terminate on a PSTN network to utilize a packet-switched data network as an interim communication medium. Problems arise, however, when a user on an IP-based or other packet switched data network tries to establish a communication link beyond the perimeter of the network, due to the disparity in addressing techniques among other differences used by the two types of networks.
The exchange/subscriber addressing scheme utilized by public switched telephone networks is closely related to the actual physical architecture of the network and therefore to the geographic location of terminating apparatus, i.e. telephone withthin the network. For example, in the United States, a telephone number may be partitioned into a three-digit area code, a three-digit exchange, and a four-digit subscriber number within the exchange. PSTN carriers currently have large, well-established networks with multitudes of subscribers utilizing such naming systems and are set up to interact with other PSTN carrier networks and to account for the variances in local geographic dialing patterns.
Conversely, packet-switched data networks adhere to a network protocol such as the TCP/IP protocol utilizes a hierarchical naming system which is neither based on the underlying hardware of the network nor the geographic locus of the various hardware components. Instead, the TCP/IP protocol partitions computers along lines of authority irrespective of physical location. In TCP/IP, hierarchical machine names are assigned according to structures of organization for parts of name space, not necessarily according to the structure of a physical network interconnection. The TCP/IP protocol implements a naming hierarchy called the Domain Name System (DNS). The Domain Name System utilizes a hierarchical naming scheme referred to as domain names. Domain names consist of a sequence of subdomain names, separated by a delimiter character, i.e. xe2x80x9c.xe2x80x9d The subdomain names of a domain name are sometimes referred to as labels. For example, the domain name xe2x80x9cwww.netspeak.comxe2x80x9d contains three labels: xe2x80x9cwwwxe2x80x9d, xe2x80x9cnetspeakxe2x80x9d, and xe2x80x9ccomxe2x80x9d. Any suffix of a label in a domain name is called a domain. In the above example, the top-level domain is xe2x80x9ccom.xe2x80x9d The domain name system is well documented in various public specifications and will not be described hereinafter for the sake of brevity.
The reader will appreciate that due to the naming schemes utilized by PSTN networks and TCP/IP based networks, such as the Internet establishment of direct connections from the Internet to public switched telephone network subscribers and vice versa, is impractical.
In light of the above, a need currently exists for a mechanism which enables translation of a conventional telephone number from a client task on an IP-based network into a network protocol address representing a gateway capable of contacting the subscriber apparatus associated with the telephone number.
A need further exists for a mechanism which accounts for the dilemma of geographic dialing patterns and the nongeographic nature of IP-based networks such as the Internet, versus the hardwired, geographic nature of public switched telephone networks.
A need further exists for a mechanism which facilitates communication between packet-switched networks and circuit-switched networks and which accommodate the existing infrastructure of circuit-switched networks, including inoperability among carriers, subscriber volumes and billing logistics.
The invention describes a method and apparatus which allows communications between packet-switched data networks and traditional circuit-switched networks. Specifically, calls originating from a IP-based network may be routed to a public switched telephone network or vice versa, using a technique which allows a traditional telephone number to be resolved to the IP address of an appropriate network gateway.
According to a first aspect of the present invention, a method for establishing communication between an executing task on a packet-switched data network and a terminating apparatus on a circuit-switched communication network comprises the steps of generating a telephone number domain name identifying a telephone number, supplying the telephone number domain name to a domain name server operatively coupled to the packet-switched network, obtaining a network protocol address of a gateway, and establishing a communication connection with the terminating apparatus identified by the telephone number domain name. In one embodiment, the telephone number domain name includes a plurality of segments which represent carrier name, country code, area code, and exchange domain names, respectively. In such embodiment, the method of obtaining the network protocol address of the appropriate gateway comprises the steps of recursively determining the network protocol addresses associated with each of the respective domain name segments of the telephone number domain name.
In accordance with a second aspect of the present invention, a computer program product for use with a computer system operatively coupled over a packet-switched data network to a domain name server, and at least one gateway comprises a computer useable medium having a program code embodied on the medium. The program code comprises code for receiving data identifying a telephone number, code for generating a telephone number domain name, code responsive to the telephone number domain name for obtaining the network protocol address of a gateway, code for forwarding the telephone number domain name to the gateway, and code for communicating with the subscriber apparatus identified by the telephone numbers. In one embodiment, the code for obtaining the network protocol address comprises code for supplying the telephone number domain name to a domain name server and code for receiving a network protocol address of a gateway associated with the telephone number domain name. In an alternative embodiment, the code for obtaining the network protocol address comprises code responsive to the received identifying data for determining whether a domain name identifier of a gateway is contained therein and code for retrieving the network protocol address of the gateway identified by the domain name identifier from a directory.
In accordance with a third aspect of the invention, a method for establishing a communication link between subscriber apparatus on a circuit-switched communication network and a task executing on a packet-switched data network both networks interconnected, by a gateway, comprises the steps of a) receiving from subscriber apparatus on the circuit-switched communication network information identifying a callee task on the packet-switched data network, b) determining from the received identifying data the network protocol address of the callee task, and c) establishing a communication connection between the subscriber apparatus on the circuit-switched communication network and the callee task on the packet-switched data network. In one embodiment, the identified callee task comprises a gateway coupled to the packets switched data network and the identifying data is supplied to the gateway. In another embodiment, the information identifying the callee task comprises a telephone number.
In accordance with a fourth aspect of the present invention, a gateway apparatus for connecting a circuit-switched communication network to a packet-switched data network comprises a processor for manipulating data; packetizing logic configured to translate data from the circuit-switched communication network into a format suitable for transmission over the packet-switched data network, unpacking logic configured to translate data from the packet-switched data network into a format suitable for transmission over the circuit-switched communication network and a memory, operatively coupled to the processor and the transmission logics, for storing information associated with one or more tasks on the packet-switched data network.